"""
    类中方法的使用
"""

import types

def drink(self):
    print("drinking..............")

class Student:
    """学生类"""

    schoolName = "海南师范大学"
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self):
        # 访问类属性
        print(self.schoolName)
        # 访问实例属性
        print(self.age)
        print(self.name)

    # 加上注解，表示是一个类方法
    @classmethod
    def get_info(cls):
        # cls 表示类对象本身
        # 通过类对象访问类属性
        print(cls.schoolName)
        # 通过类对象，访问类的信息
        print(cls.__doc__)

zjj = Student("张佳佳",30)
zjj.eat()
# 可以通过实例对象调用类方法
zjj.get_info()
# 也可以通过类直接调用类方法
Student.get_info()

# 给实例添加方法
print("==========给实例添加方法============")
# zjj.drink = drink
# # 添加上的方法一定要传对象本身给方法，这里默认编译器是不会传的，因为不知道要传那个对象
# zjj.drink(zjj)

# 给类添加上方法，直接使用类调用
# Student.drink = drink
# zjj.drink()
# Student.drink(zjj)

zyr = Student("zyr",18)
zyr.drink = types.MethodType(drink, zyr)
zyr.drink()